home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / dev / c / Emperor_v4.1.lha / Emperor / Emperor.readme < prev    next >
Text File  |  2001-07-16  |  18KB  |  377 lines

  1. Short:    Object-oriented programming language
  2. Author:   Matthias Gietzelt
  3. EMail:    shamane@exmail.de
  4. Uploader: Andreas Gietzelt <endee@t-online.de>
  5. Version:  4.1
  6. Type:     dev/c
  7. Requires: OS 3.5, well-equipped Amiga, some knowledge,
  8.           Amiga Developer CD 2.1 (see below)
  9.  
  10.  
  11.         _______   __   __          ___        _______   ___      ___          ___   
  12.        /******/  /**| /**|        /***\      /******/  /***\    /***\        /***\  
  13.       /**____/  /***|/***|       /*__**\    /**____/  /*__**\  /*___*\      /*__**\ 
  14.      /**/___   /*/ |**/|*|      /*/__/*|   /**/___   /*/__/*| |*/   \*|    /*/__/*| 
  15.     /******/  /*/  |_/ |*|     /*******/  /******/  /*******/ |*|   |*|   /*******/ 
  16.    /**____/  /*/       |*|    /*______/  /**____/  /*__**__/  |*|   |*|  /*__**__/  
  17.   /**/___   /*/        |*|   /*/        /**/___   /*/  \*\    \*\___/*/ /*/  \*\    
  18.  /******/  /*/         |*|  /*/        /******/  /*/    \*\    \*****/ /*/    \*\   
  19. /______/  /_/          |_| /_/        /______/  /_/      \_\    \___/ /_/      \_\  
  20.  
  21.  
  22.                       The object-oriented programming language
  23.  
  24.                     Available at www.aminet.de ! (Drawer: dev/c)
  25.  
  26.  
  27.  
  28. Für die deutsche Version, bitte weiter unten lesen....
  29.  
  30.  
  31. ENGLISH:
  32.  
  33.  
  34. History
  35.  
  36. 2.0  - Initial release
  37. ---
  38. 2.1  - GadTools gadgets support !!
  39.      - reached to shrink programsize by coding the window-stuff by myself
  40.        instead of making it by ReActor
  41. ---
  42. 2.2  - Oops..The program crashed, when a clicktab was in a test-window.
  43.      - speed optimizations (e.g. at startup, shutdown etc.)
  44.      - defined catalog-creation
  45.      - C++-Code support
  46.      - added the macro "Preferences-Menu" for Prefs-Programs
  47.      - better & easier generated C-sourcecode
  48.      - minor bugfixes
  49. ---
  50. 2.3  - prefs-editor rewritten
  51.      - chooseable processortype for generated StormC-project
  52.      - modified programming-help
  53.      - some functionmacros rewritten
  54.      - minor bugfixes
  55. ---
  56. 3.0  - gadgets-test routine rewritten
  57.      - fixed bugs by showing tapedeck & colorwheel gadgets
  58.      - fixed problems with clicktabs & page gadgets (see "clicktabsexample")
  59.      - added function "Shutdown()" (called, when program quits)
  60.      - added progress-bar while saving
  61.      - added macrofunctions "Emperor_Set/GetGadgetAttrComplex()" (see guide for details)
  62. ---
  63. 3.1  - fixed a bug when generating source for window with colorwheel
  64.      - source is now *more* SAS/C friendly
  65.      - fixed a silly bug when copy a function from programming help into texteditor
  66.      - added online help for macrofunctions (see chapter Programming Help for details)
  67.      - added ARexx-connection to StormC (Scripts - Dir)
  68.      - added arguments by starting StormC (e.g. GoldED support for StormC)
  69.      - added loading picture
  70. ---
  71. 3.2  - added parametry of several image-gadgets (bevel, bitmap, glyph)
  72.        (see "ClicktabExample" for details)
  73.      - fixed a bug with slider and getfile-gadgets
  74.      - fixed problem with requester-body-text ["\n" (Newline) will be recognized now]
  75.      - rewritten routine for adding, moving (up and down) and removing of objects in a list
  76. ---
  77. 3.5  - showing of scroller & slider-gadgets fixed
  78.      - layout-gadget (bevelstyle & -state) doesn't switch back to previous setted
  79.        values anymore
  80.      - added support of finnish catalog
  81.      - added program-environment for configuration of version, program name,
  82.        stack, mem and many more
  83.      - deleting windows is possible now
  84.      - when pages were added to gadgetlist, its generation was incorrect
  85.      - added gadgethelp support - just connect a gadget to configure ! (program-environment)
  86.      - added function <Menu-Edit-Clearlist> to reset current list of objects
  87.      - label's Locale-connection works correct now
  88.      - gadgethelp for nearly every gadget
  89.      - added chooseable HookType for string-gadgets
  90.      - added some initial-configurations for texteditor-gadgets
  91.      - moving Locale-entrys is possible now
  92.      - editing the includelist is also possible now
  93.      - added new startup-picture (thanks to Janne Peräaho)
  94. ---
  95. 3.6  - Gradientsliders horiz/vert orientation works correct now
  96.      - some global variables problems fixed
  97.      - problems with node-array fixed
  98.      - special positions/sizes for OS 2.0 windows work now
  99.      - chooseable smallfont for large lists
  100.      - fixed crash when moving a test-window
  101.      - modifyable library-integration for your project
  102.      - fixed bug in installer-script (doesn't notice, if an OS higher than 3.5 was installed)
  103.      - added interconnection maps
  104.      - generating source based on AmigaOS 2.0, AmigaOS 3.5+ or mixed code
  105. ---
  106. 4.0  - DONE ! the whole code is rewritten and structured ! only 4 MBytes of systemmemory
  107.        is needed !
  108.      - the programflow maybe changed a bit to a better, because also all low-level
  109.        functions were rewritten
  110.      - the look has changed a bit
  111.      - menu is more complex and professional
  112.      - expanded GadTools-handling (with RightMouseButton)
  113. ---
  114. 4.1  - added french catalog (written by Olivier Martin -- thank you !)
  115.      - added translations for predefined menus and requests
  116.      - added attributes for texteditor-, speedbar- and space-gadget
  117.      - new special requester-kind (in Reaction-style)
  118.      - ARexx-script changed/fixed problem while transfering projects
  119.      - removed fix-positions for attribute-windows
  120.      - fixed problem with preview-menu (no wrong additional menuitems anymore)
  121.      - added array for speedbar buttons
  122.      - fixed problems with arrays
  123.      - enlarged edges around GadTools-gadgets for resizing
  124.      - path to includes and libs configurable
  125.      - layout of mainwindow changed (no overlapping gadgets anymore)
  126.      - added requester, if choosing menuitem "New"
  127.      - fixed a bug in menuitem "New"
  128.      - fixed a bug in menuitem "Delete"
  129.      - bugs within generated code were fixed
  130.      - chooseable generation of macrofunctions
  131.      - generated code much smaller while leaving out unused macrofunctions and restructuring it
  132.        (ca. 40 % smaller)
  133.      - chooseable initial opened window for your project
  134.      - fixed bug in source, when there was just one gadget in a list
  135.      - added possibility to create a directory containing the current project
  136.      - bug while opening old projects containing a slider fixed
  137.      - chooseable locale-datafile creation
  138.      - chooseable storm-projectfile creation
  139.      - texteditor changes are recognized before saving
  140.      - saving of strings containing a linefeed ('\n') is no problem anymore
  141.      - opened amigaguide.library because of some initialization-bugs
  142.  
  143.  
  144. Introduction
  145.  
  146. Thanks for decrunching and the will to testing the program-packet.
  147. This program should "revolutioning" the software-development on Amiga.
  148.  
  149. Object-oriented programminglanguage (OOP) is maybe a bit too high for that
  150. program, because there are "real" C/C++-sourcecodes generated and
  151. an external C/C++-Compiler must translate it into machine-code. In the Amiga-sphere
  152. there are only less applications like CanDo, Storm-Wizard and so on, but one day
  153. I have seen the program "Delphi" on the PC :( ! This OOP is exclusive controlable
  154. in Pascal (that set's me up) and it has millions of configuration-possibilities.
  155. I didn't knew such things on Amiga, and so I made it by myself.
  156.  
  157. I want to make parameting of the Graphical User Interface (GUI) and its macro-elements as easy as
  158. possible.
  159. Following standard-GUI-elements are implemented:
  160.  * requests
  161.  * ASL-requests
  162.  * menus
  163.  * Locale-catalogs
  164.  * OS2.0 gadgets (GadTools)
  165.  * OS3.5 gadgets (Reaction)
  166.  * windows
  167. Following NON-GUI-elements are implemented:
  168.  * function-macros, which makes programming under OS3.5+ more easily
  169.  * includes
  170.  * declare variables
  171.  * library-opening
  172.  * InterConnection maps between gadgets
  173.  * create list-arrays for gadgets
  174.  
  175. With Emperor you are generating a complete C/C++-sourcecode, which only must be
  176. compiled by an external compiler (e.g. StormC from the developer CD2.1).
  177.  
  178. Aim of this program is to assure software developer to create their programs (its sourcecode)
  179. by Emperor, because the making of software (opening of windows, file- and fontrequests,
  180. menus etc.) is often equal and must not longer copied by programmers from other sourcecodes.
  181. Emperor decrees about one or more macros for every GUI-element. Like the menus:
  182. here you must, for creating the complete Project-menu (open, close, save, print etc.) and its
  183. translation, (in Locale-".catalog"-file) only select the corresponding entry in the list.
  184. This is also possible with requests e.g. by making a QuitRequest. These are called in
  185. the own sourcecode as function "REQUESTNAME();".
  186.  
  187. But the program should also be for amigans, who never programmed before,
  188. and bade an easy way in the programming of AmigaOS-GUIs.
  189.  
  190.  
  191. Systemrequirements
  192.  
  193.   - an Amiga ;-)
  194.   - Memory at least 4 MByte; recommended 16 MByte or more
  195.   - Workbench version 3.5 or higher
  196.   - Processor at least 68020; recommended 68060
  197.   - Amiga Developer CD 2.1 of the HAAGE & Partner GmbH
  198.   - C/C++-Compiler (from the developer CD "ADCD_2.1:Contributions/Haage_&_Partner/StormC/")
  199.   - CatComp (from the developer CD "ADCD_2.1:NDK/NDK_3.5/Tools/CatComp")
  200.  
  201.  
  202. DEUTSCH:
  203.  
  204.  
  205. Die Geschichte
  206.  
  207. 2.0  - Erste Veröffentlichung
  208. ---
  209. 2.1  - AmigaOS 2.0 Gadgets hinzugefügt !!
  210.        (GadTools-Gadgets sind nun verfügbar !)
  211.      - Programm ist durch Code-Umsetzung von ReActor nach eigenem Code geschrumpft.
  212. ---
  213. 2.2  - Programmabsturz, wenn Clicktab-Gadgets in einem Test-Fenster waren.
  214.      - Geschwindigkeitsoptimierungen (z.B. beim Start, Ende etc.)
  215.      - definierte Catalog-Erstellung
  216.      - Makro "Preferences-Menü" für Einstellungs-Programme
  217.      - C++-Quelltext Unterstützung
  218.      - besserer & einfacherer generierter C-Quelltext
  219.      - minimale Fehler behoben
  220. ---
  221. 2.3  - Prefs-Editor überarbeitet
  222.      - wählbarer Prozessortyp für generierten StormC-Projekt
  223.      - modifizierte Programmierhilfe
  224.      - diverse Funktionsmakros überarbeitet
  225.      - minimale Fehler behoben
  226. ---
  227. 3.0  - Gadget-Test Routine überarbeitet
  228.      - Fehler beim Anzeigen von Tapedeck & Colorwheel Gadgets behoben
  229.      - Probleme mit Clicktabs & Page Gadgets behoben (siehe "clicktabsexample")
  230.      - Funktion "Shutdown()" hinzugefügt (Aufruf, bei Programmende)
  231.      - Fortschrittsanzeige während des Speicherns
  232.      - Makrofunktion "Emperor_Set/GetGadgetAttrComplex()" hinzugefügt
  233.        (siehe Emperor.guide)
  234. ---
  235. 3.1  - Fehler beim Quelltextgenerieren mit ColorWheels behoben
  236.      - Quelltext ist nun SAS/C freundlich*er*
  237.      - Fehler beim Kopieren einer Funktion von der Programmierhilfe in den Texteditor behoben
  238.      - Online Hilfe für Makrofunktionen hinzugefügt (siehe Kapitel Programmierhilfe)
  239.      - ARexx-Verbindung zu StormC (Scripts - Verzeichnis)
  240.      - Argumente beim Starten von StormC hinzugefügt (z.B. GoldED support für StormC)
  241.      - Ladebild hinzugefügt
  242. ---
  243. 3.2  - diverse Image-Gadgets (Bevel, Bitmap, Glyph) hinzugefügt
  244.        (siehe "ClicktabExample" für Einzelheiten)
  245.      - Fehler mit Slider und Getfile-Gadgets behoben
  246.      - Problem mit dem Requester-Body-Text behoben ["\n" (Newline) wird nun berücksichtigt]
  247.      - Routine für hinzufügen, verschieben (hoch und runter) und löschen von Objekten
  248.        in den Listen überarbeitet
  249. ---
  250. 3.5  - Anzeigen des Scroller & Slider-Gadgets ist überarbeitet worden
  251.      - Layout-Gadget (BevelStyle & -State) springt nicht mehr zu zuvor eingestellten
  252.        Werten zurück
  253.      - Finnischen Katalog hinzugefügt
  254.      - Programmumgebung zur Konfiguration von Version, Programmnamen, Stack, Speicher
  255.        und vielem, vielem mehr hinzugefügt
  256.      - löschen von Fenstern ist nun möglich
  257.      - wenn Pages hinzugefügt wurden, waren deren Generationen inkorrekt
  258.      - GadgetHelp hinzugefügt - einfach ein Gadget verbinden, um die GadgetHelp zu
  259.        konfigurieren ! (Programmumgebung)
  260.      - Funktion <Menü-Bearbeiten-Liste löschen> für das Zurücksetzen der aktiven Liste von
  261.        Objekten hinzugefügt
  262.      - Label's Locale-Verbindung arbeitet nun korrekt
  263.      - GadgetHelp für beinahe jedes Gadget
  264.      - wählbarer HookType für String-Gadgets
  265.      - diverse Initial-konfigurationen für Texteditor-Gadgets hinzugefügt
  266.      - verschieben von Locale-Einträgen ist nun möglich
  267.      - editieren der Includeliste ist nun möglich
  268.      - neues Startupbild hinzugefügt (Dank an Janne Peräaho)
  269. ---
  270. 3.6  - Gradientsliders horiz/vert Ausrichtung arbeitet nun korrekt
  271.      - einige Probleme mit globalen Variablen behoben
  272.      - Probleme mit Node-Arrays behoben
  273.      - spezielle Positionen/Größen für OS 2.0 Fenster arbeiten nun korrekt
  274.      - wählbarer Smallfont für komplexe Listen (Texteditor/Programmierhilfe)
  275.      - Fehler behoben beim verschieben vom Vorschaufenster
  276.      - veränderbare Library-Integration für das eigene Projekt
  277.      - Fehler behoben im Installer-Skript (arbeitet jetzt mit OS-Versionen >3.5 zusammen)
  278.      - Interconnection Maps hinzugefügt (Verknüpfung von Gadgets)
  279.      - Quelltextgenerierung auf Basis von AmigaOS 2.0, AmigaOS 3.5+ oder gemischt
  280. ---
  281. 4.0  - GESCHAFFT ! der gesamte Quelltext ist neugeschrieben, strukturiert und überarbeitet !!
  282.        nur noch 4 MBytes Systemspeicher sind für den Start von Emperor notwendig !
  283.      - der Programmfluß hat sich teilweise geändert, weil auch alle low-level Funktionen
  284.        neugeschrieben wurden.
  285.      - neuer Look
  286.      - komplexeres und professionelleres Menü
  287.      - erweitertes GadTools-handling (mit RechtemMausButton)
  288. ---
  289. 4.1  - französischen Katalog hinzugefügt (geschrieben von Olivier Martin -- besten Dank !)
  290.      - Übersetzungen für vorgefertigte Menüs und Gadgets hinzugefügt
  291.      - Attribute für Texteditor-, Speedbar- und Space-gadget hinzugefügt
  292.      - neuer spezieller Requestertyp (im Reaction-Stil)
  293.      - ARexx-Skript verändert/Probleme während des Transfers von Projekten beseitigt
  294.      - fixe Positionen für Attribut-Fenster beseitigt
  295.      - Problem mit Vorschau-Menü behoben
  296.      - Array für Speedbar-Buttons hinzugefügt
  297.      - Probleme mit Arrays beseitigt
  298.      - Justierungsflächen um GadTools-Gadgets vergrößert
  299.      - Pfad zu Includes und Libs konfigurierbar
  300.      - Layout des Hauptfensters verändert (keine überlappenden Gadgets mehr)
  301.      - Requester hinzugefügt, wenn Menüpunkt "Neu" gewählt wird
  302.      - Fehler im Menüpunkt "Neu" behoben
  303.      - Fehler im Menüpunkt "Löschen" behoben
  304.      - wählbare Makrofunktionsgenerierung
  305.      - generierter Quelltext durch Herauslassen unbenutzter Makrofunktionen und Restrukturierung
  306.        wesentlich kleiner (ca. 40 %)
  307.      - initial geöffnetes Fenster für eigenes Projekt wählbar
  308.      - Fehler im generierten Quelltext bei nur einem Gadget beseitigt
  309.      - spezifische Projekt-Verzeichnisse erstellbar
  310.      - Fehler während des Öffnens alter Projekte, die einen Slider enthielten, behoben
  311.      - Erstellung von Locale-dateien wählbar
  312.      - Erstellung von Storm-projekten wählbar
  313.      - Texteditor verarbeitet Änderungen nun korrekt
  314.      - speichern von Zeichenketten mit einem linefeed ('\n') ist kein Problem mehr
  315.      - amigaguide.library wegen Startschwierigkeiten geöffnet
  316.  
  317.  
  318. Die Einführung
  319.  
  320. Vielen Dank, daß Sie dieses Programm entpackt haben und ausprobieren möchten !
  321. Dieses Programm soll die Software-Entwicklung auf dem Amiga "revolutionieren".
  322.  
  323. Objekt-orientierte Programmiersprache (OOP) ist vielleicht ein wenig
  324. zu hoch gegriffen, da weiterhin "echte" C/C++-Quelltexte generiert und
  325. durch einen externen C/C++-Compiler übersetzt werden müssen. Im Amiga-Bereich
  326. gibt's nur wenige Ausnahmen wie CanDo, Storm-Wizard u.a., aber irgendwann habe
  327. ich das Programm "Delphi" auf dem PC :( kennengelernt ! Diese OOP ist
  328. ausschließlich in Pascal gehalten (was mich arg störte) und erschlägt einen
  329. mit den Millionen Konfigurations-möglichkeiten. Ich kannte soetwas in der Art
  330. bisher auf dem Amiga nicht, und kurzentschlossen setzte ich mich selbst daran.
  331.  
  332. Ich wollte die Parametrierung der Oberfläche und der Makro-Elemente so einfach wie
  333. möglich machen.
  334. Folgende Standard-Oberflächenelemente sind implementiert:
  335.  * Requester
  336.  * ASL-Requester
  337.  * Menüs
  338.  * Locale-Katalog
  339.  * OS2.0 Gadgets (GadTools)
  340.  * OS3.5 Gadgets (Reaction)
  341.  * Fenster
  342. Folgende Nicht-Oberflächenelemente sind implementiert:
  343.  * vorgefertigte Funktionsmakros, die das Programmieren unter OS3.5 wesentlich erleichtern.
  344.  * Includes
  345.  * Deklarieren von Variablen
  346.  * definierbare Einbindung vonFuntions-Bibliotheken
  347.  * InterConnection Maps zwischen Gadgets
  348.  * Datenfelder für Listen von Gadgets
  349.  
  350. Man generiert mit Emperor einen komplett fertigen C/C++-Quelltext, der nur noch
  351. durch einen externen Compiler (z.B. StormC auf der Developer CD2.1) übersetzt werden muß.
  352.  
  353. Ziel dieses Programms soll sein, Softwareentwickler zu überzeugen mit Emperor ihre
  354. Programme (deren Quelltext) zu erstellen, da die Verfahrensweise bei der Erstellung
  355. von Software (Öffnen von Fenstern, Datei- und Schriftauswahlrequestern, Menüs etc.)
  356. oft gleich ist und nicht weiter durch den Programmierer selbst mühsam aus anderen
  357. Quelltexten herausgefischt werden muß. Emperor verfügt für jedes Element schon
  358. ein oder mehrere vorgefertigte, aber veränderbare, Makros. So z.B. bei den Menüs:
  359. hier muß für das Projekt-Menü (Öffnen, Speichern, Drucken etc.) und dessen
  360. Übersetzung (für Locale - ".catalog"-Datei) nur der entsprechende Eintrag
  361. gewählt werden. Dies gilt auch für Requester z.B. für das QuitRequest. Diese müssen
  362. nur noch im eigenen Quelltext als Funktion "REQUESTERNAME();" aufgerufen werden.
  363.  
  364. Das Programm soll aber auch für Amiganer sein, die noch nie programmiert haben,
  365. und so einen einfachen Einstieg in die Programmierung der AmigaOS-Oberfläche bieten.
  366.  
  367.  
  368. Die Systemanforderungen
  369.  
  370.   - einen Amiga ;-)
  371.   - Speicher mindestens 4 MByte; empfohlen 16 MByte oder mehr
  372.   - Workbench Version 3.5 oder höher
  373.   - Prozessor mindestens 68020; empfohlen 68060
  374.   - Amiga Developer CD 2.1 von der HAAGE & Partner GmbH
  375.   - C/C++-Compiler (von der Developer CD "ADCD_2.1:Contributions/Haage_&_Partner/StormC/")
  376.   - CatComp (von der Developer CD "ADCD_2.1:NDK/NDK_3.5/Tools/CatComp")
  377.